package com.shujia.wyh.day10;

import java.util.ArrayList;

/*
    泛型：

    我们之前的集合程序写法，发现有很多的警告，而且获取元素对象时候，并不能直观的发现元素对象的类型
    我们想一下，之前学过一个容器：数组
    数组的特点是对于同一个数组而言，只能存同一种数据类型的元素，在数组定义的时候就确定的这个数组的元素类型
    int[] arr = new int[2];
    所以我们又想到，集合能否像数组一样，在定义的时候就确定这个集合就只能存某种引用数据类型，这样就不用做向下转型了。
    java中提供了一个机制给我们使用：泛型机制
    使用语句定义格式：<引用数据类型>
    泛型的好处：
        1、取消了很多的警告，使程序更加美观
        2、获取元素的时候，不需要向下转型了
        3、严格确定了集合中能存储的元素数据类型

 */
public class FanXingDemo1 {
    public static void main(String[] args) {
        //需求：创建集合对象，像集合中添加元素并遍历
        ArrayList<String> list1 = new ArrayList<>();  //泛型的时候，前面必须写泛型，后面可以不写，但是要有<> jdk1.7之后会自动类型推断

        list1.add("hello");
        list1.add("world");
        list1.add("java");
        list1.add("hadoop");
        list1.add("hive");
        list1.add("hbase");
//        list1.add(100);

        for(int i=0;i<list1.size();i++){
//            String s = (String) list1.get(i);
            String s = list1.get(i);
            System.out.println(s+","+s.length());
        }
    }
}
